\documentclass[a4paper,11pt]{report}

%\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage[OT4]{fontenc}
\usepackage[pdftex]{graphicx}

% Title Page
\title{nibblr}
\author{Michał Dettlaff \and Łukasz Draba \and Dariusz Kuziemski}
\date{\textsc{Uniwersytet Gdański, Maj 2011}}

\makeatletter
\newcommand{\linia}{\rule{\linewidth}{0.5mm}}
\renewcommand{\maketitle}{\begin{titlepage}
    \vspace*{5cm}
    \noindent\linia
    \begin{center} 
      \LARGE\textsc{\@title}
     \end{center}
     \linia
    \vspace{2cm}
    \begin{flushright}
    \begin{minipage}{5cm}
    \begin{tabular}[t]{l}%
    \@author
    \end{tabular}\par
    \end{minipage}
     \end{flushright}
    \vfill
    \begin{center}
    \@date
    \end{center}
  \end{titlepage}
}
\makeatother

\begin{document}
\maketitle

\section{Opis programu}

%TODO usunąć wszystkie zbędne linijki (komentarze)

%D: jakiś wstęp, warto może jakąś ideę programu ładnie opisać - jak Michał
%opowiadał przed zajęciami
\subsection{Wstęp}
%ale głupoty :D
\textbf{nibblr} jest wieloagentowym, przenośnym systemem umożliwiającym agregowanie heterogenicznych
informacji z sieci World Wide Web. Na rzecz użytkownika działa agent personalny, który zbiera
informacje od wyspecjalizowanych agentów stron (WebsiteAgent). Każdy agent strony potrafi
podsumować zawartość strony WWW w której się specjalizuje i przedstawić ją w formie krótkiego
opisu oraz listy nowości (tak zwanych niblów), mówiących o tym co pojawiło się nowego na danej
stronie w ostatnim czasie. Agent personalny agreguje te informacje, po czym mogą one zostać
wyświetlone w przejrzysty sposób użytkownikowi. Architektura agentowa jest całkowicie niezauważalna
dla użytkownika, który może łatwo korzystać z \textbf{nibblra} podobnie jak programu pocztowego lub
czytnika kanałów RSS.
\newline
\newline
Rozproszona natura systemu agentowego przyczynia się do elastyczności programu, ponieważ możliwe
jest dodawanie kolejnych agentów stron bez konieczności rekompilacji, a nawet ponownego uruchamiania
programu - wystarczy dodać kolejnego agenta na platformę. Wystarczy tylko, aby dodany agent
implementował standardowy protokół komunikacyjny stosowany w programie.

\begin{center}
	\includegraphics[scale=0.27]{./img/nibblr0.png}
\end{center}

\subsection{Informacje techniczne}

Dzięki zastosowaniu technologii Java, \textbf{nibblr} jest programem przenośnym; był on testowany
w środowiskach Linux oraz Windows. Warstwa GUI jest zaimplementowana za pomocą biblioteki SWT,
a warstwa agentów z użyciem platformy JADE. Testy zostały napisane z użyciem biblioteki JUnit.
Agenty komunikują się za pomocą własnej ontologii.

%D: mam duże wątpliwości co do nazewnictwa ``subskrybowane kanały'' - brzmi jak
%rss
%nie wiem czy nie przyczepi się jakoś do tego??
\newpage
\subsection{Opis interfejsu}

\begin{figure}[h]
	\includegraphics[scale=0.27]{./img/nibblr1.png}
	\caption{Interfejs główny programu nibblr można podzielić na sześć 
		zasadniczych części, kolejno: 
		\newline \hspace* {1,5cm}1. Menu podręczne,
		\newline \hspace* {1,5cm}2. Filtrowanie według przeczytane/
					    nieprzeczytane/wszystkie,
		\newline \hspace* {1,5cm}3. Lista subskrybowanych kanałów,
		\newline \hspace* {1,5cm}4. Lista dostępnych artykułów
					    wybranego kanału,
		\newline \hspace* {1,5cm}5. Informacje o aktualnie wybranym
					    artykule, 
		\newline \hspace* {1,5cm}6. Treść wybranego artykułu,
	}
	\label{fig:interface6}
\end{figure}

\newpage
\subsubsection*{1. Menu podręczne}

\includegraphics[scale=0.8]{./img/menu.png}

\begin{itemize}
	\item[\textbf{Add}] - pozwala na dodanie kanału do listy aktualnie 
		subskrybowanych, po kliknięciu na przycisk Add w menu pojawia
		się lista dostępnych subskrypcji.
	\begin{center}
		\includegraphics[scale=0.5]{./img/menu_add.png}
	\end{center}

	\newpage
	%D: jak się to odbywa? To są te same co w Add? Prowadząca może o to
	%zapytać?
	\item[\textbf{Recommend}] - pozwala na dodanie kanału z listy 
				    rekomendowanych.
	\begin{center}
		\includegraphics[scale=0.5]{./img/menu_recom.png}
	\end{center}

	\newpage
	\item[\textbf{Synchronize}] - Odświeża informacje z aktualnie 
		subskrybowanych kanałów, następuje sprawdzenie czy pojawiły się
		nowe artykuły, jeżeli tak - są automatycznie dodawane do listy.
	\begin{center}
		\includegraphics[scale=0.5]{./img/menu_sync.png}
	\end{center}

	\newpage
	\item[\textbf{Search}] - Przeszukanie kanałów i wyświetlenie tych które 
		zawierają podane słowa kluczowe.
	\begin{center}
		\includegraphics[scale=0.5]{./img/menu_search.png}
	\end{center}

	\newpage
	\item[\textbf{Preferences}] - Konfiguracja programu
	\begin{center}
		\includegraphics[scale=0.5]{./img/menu_pref.png}
	\end{center}
\end{itemize}

\newpage
\subsubsection*{2. Filtrowanie według przeczytane/nieprzeczytane/wszystkie}
Daje możliwość filtrowania artykułów według tego czy zostały już przeczytanie,
wybór \textbf{All} wyłącza filtrowanie.

\begin{center}
	\includegraphics[scale=0.5]{./img/menu_readmenu1.png}
\end{center}

\subsubsection*{3. Lista subskrybowanych kanałów}
Tutaj widoczne są wszystkie zasubskrybowane kanały. Dostępny jest jeden 
specjalny kanał o nazwie \textbf{$<$All$>$}, który umożliwia wyświetlenie
wszystkich artykułów ze wszystkich subskrybowanych kanałów.
Dla każdego kanału jest dostępne menu kontekstowe umożliwiające zaznaczenie
wszystkich artykułów jako przeczytane oraz synchronizacje tylko wybranego
kanału. Ostatnia opcja z menu pozwala usunąć kanał z listy subskrypcji.

\subsubsection*{4. Lista dostępnych artykułów wybranego kanału}
Lista artykułów zależnie od wybranego filtra dla aktualnie wybranego kanału.

\subsubsection*{5. Informacje o aktualnie wybranym artykule}
Zawiera informacje na temat wybranego artykułu takie jak tytuł, adres www 
z którego pochodzi artykuł oraz datę.

\subsubsection*{6. Treść wybranego artykułu}
%D: funkcjonalna przeglądarka (gdyby tylko dorobić pasek adresu, pełna
%konkurencja dla najnowszej wersji IE, trwają prace nad załączeniem adblocka ;-)
Wyświetla treść wybranego artykułu.
%D: nie mam pomysłów na opisy, muszę się z tym wszystkim przespać, może na coś
%jeszcze wpadne...

\section{Diagram agentów}

\begin{center}
 \includegraphics[scale=0.45]{./diagrams/agent_case1.png}
\end{center}
%D: myślicie że jakiś komentarz/label do diagramu byłby wskazany?

\newpage
\section{Wizje przyszłościowe}
%czarne myśli me

%\subsection{Okno z konfiguracją} ;-) %TODO usunąć tę linijkę też na koniec

\subsection{Zewnętrzny Agent Preferencji}
Agent ten zajmowałby się komunikacją z innymi \textit{Agentami Zewnętrznymi}
wymieniając się informacjami o preferancjach swoich użytkowników. Na podstawie
tych informacji agent ten mógłby proponować w razie podobieństw gustów swoich
użytkowników nowe subskrypcje. 

\end{document}          

